﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ScannerClasses
{
   public static class TokenTypes
    {
       public  enum TokenType { IDENTIFIER, INTEGERLITERAL,DOUBLELITERAL, WORDLITERAL, TRUE,FALSE, 
           OPERATOR,NEW,INT,BOOLEAN, DOUBLE, WORD, VOID, RETURN, FUNCTION, IF, ELSE, WHILE, FOR,MAIN, SEMICOLON,DOT,SIZE,
       COMMA, LEFTPARAN, RIGHTPARAN, LEFTCURLYBRACE, RIGHTCURLYBRACE,CR,CW,ERROR,ENDOFFILE, ASSIGN};

       public static List<KeyValuePair<TokenType, string>> keywords = new List<KeyValuePair<TokenType, string>>() {
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.NEW, "new"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.INT, "int"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.BOOLEAN, "boolean"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.DOUBLE, "double"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.WORD, "word"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.VOID, "void"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.RETURN, "return"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.FUNCTION, "function"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.IF, "if"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.ELSE, "else"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.WHILE, "while"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.FOR, "for"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.SIZE, "size"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.CR, "cr"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.MAIN, "main"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.CW, "cw"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.TRUE, "true"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.FALSE, "false"),
           new KeyValuePair<TokenTypes.TokenType, string>(TokenTypes.TokenType.ASSIGN, "=")
       };
    }
}
